import entity.Student;

/**
 * @author ypz
 * @date 2021/9/14 14:25
 */
//引用传递 传递的是拷贝的引用地址，change方法并没有改变变量s1和s2在对象中的引用
public class ParamTransferUse {
    /**
     * 值传递：指的是在方法调用时，传递的参数是按值的拷贝传递，传递的是值的拷贝，也就是说传递后就互不相关了。
     * 引用传递：指的是在方法调用时，传递的参数是按引用进行传递，其实传递的引用的地址，也就是变量所对应的内存空间的地址。
     * 传递的是值的引用，也就是说传递前和传递后都指向同一个引用（也就是同一个内存空间）。
     * @param args
     */
    public static void main(String[] args) {
        Student s1 = new Student("张三");
        Student s2 = new Student("李四");
        change(s1,s2);
        System.out.println("s1="+s1.getName());
        System.out.println("s2="+s2.getName());
    }

    private static void change(Student s1, Student s2) {
        System.out.println("s1="+s1.getName());
        System.out.println("s2="+s2.getName());
        s1.setName("hello world");
    }
}
